layui.use(['laydate', 'form', 'layer', 'jquery'], function () {
    let laydate = layui.laydate;
    $ = layui.jquery;
    let form = layui.form,
        layer = layui.layer;
    //执行一个laydate实例
    laydate.render({
        elem: '#birthday', //指定元素
        //    高度太低，需要强制弹出
        trigger: 'click'
    });
    //如果没有，自定义验证，则有默认验证
    //自定义验证规则
    findById();

    function findById() {
        let id = sessionStorage.getItem("userId");
        let res = myAjax("/back/user/id", {id: id}, "get");
        if (res != null) {
            if (res.data != null) {
                setPageData(res.data);
            }
        }
    }

    function setPageData(data) {
        //console.log(data);
        form.val('setData', {
            "username": data.username // "name": "value"
            , "phone": data.phone
            , "email": data.email //复选框选中状态
            , "address": data.address
            , "birthday": data.birthday //开关状态
            , "sex": data.sex
            , "enable": data.enable
        });
        form.render();
    }

    form.verify({
        //正则表达式
        // ^以什么开头 $以什么结尾
        // []只能取里面的一位元素
        // {m,n} 至少m个，最多n个元素
        username: [/^[A-z][A-z0-9_-]{5,11}$/, '用户名必须是6到12为，以字母开头'],
        phone: [/^1[0-9]{10}$/, '电话号码格式不对，请检查电话号码格式'],
    });
    //监听提交
    form.on('submit(edit)', function (data) {
        data = data.field;
        data.id = sessionStorage.getItem("userId");
        //发异步，把数据提交给java
        let res = myAjax("/back/user/update", data, "post");
        if (res != null) {
            if (res.count === 1) {
                layer.alert("修改成功", {
                        icon: 6
                    },
                    function () {
                        //关闭当前frame
                        xadmin.close();
                        // 可以对父窗口进行刷新
                        xadmin.father_reload();
                    });
            } else if (res.msg === 'error') {
                layer.alert("用户已存在");
            } else {
                layer.alert("增加失败");
            }
        }
        return false;
    });
});